/*
 * SubProblem.h
 *
 *  Created on: 20/06/2013
 *      Author: marcio
 */

#ifndef SUBPROBLEM_H_
#define SUBPROBLEM_H_


class SubProblem {
private:
	Matrix<double> mtx;

	Vector<double> b;

	Vector<double> obj;

	Vector<char> sense;

	Vector<double> ub;

	Vector<double> lb;

	Vector<double> traslateUP;
	Vector<double> traslateDown;

	Vector<long> fixed;
	Vector<double> fvalue;


public:
	SubProblem(Problem* p);

	SubProblem(SubProblem* p);

	virtual ~SubProblem();

	bool addRest(double* coef, long pos, char sense, double* b);

	bool addTransRest(double* coef, long pos, char sense, double* b);

	bool fixVariable(double value, long i);

	bool changeObjValue(double ob, long i);

	Vector<double>* translateX(Vector<double> x);

	SubProblem* copy();
};

#endif /* SUBPROBLEM_H_ */
